[tool.poetry]
name = "chat"
version = "0.2.0"
description = "RAG ChatBot"
authors = ["Umberto Griffo <umberto.griffo@gmail.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = ">=3.10,<3.11"
tqdm = "~=4.65.0"
requests = "~=2.31.0"
numpy = "~=1.24.2"
sentencepiece = "~=0.1.99"
langchain = "~=0.0.341"
pyllamacpp = "==1.0.7"
gpt4all = "==2.0.2"
streamlit = "~=1.29.0"
unstructured = "==0.7.7"
chromadb = "~=0.4.18"
transformers = "~=4.33.0"
ctransformers = { version = "~=0.2.27", extras = ["cuda"] }
rich = "~=13.4.2"
pyfiglet = "~=0.7"
clean-text = "~=0.6.0"
Unidecode = "~=1.3.6"
nest_asyncio = "~=1.5.8"

[tool.poetry.group.dev.dependencies]
pytest = "~=7.2.1"
pytest-cov = "~=4.0.0"
pytest-mock = "~=3.10.0"
pre-commit = "~=3.6.0"
ruff = "~=0.1.9"
httpx = "~=0.23.3"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

# https://docs.astral.sh/ruff/configuration/
[tool.ruff]
exclude= [".venv", "docs"]
line-length = 120
indent-width = 4

[tool.ruff.lint]
select = [
    # Pyflakes
    "F",
    # Pycodestyle
    "E",
    "W",
    # isort
    "I"
]

[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"
# Like Black, indent with spaces, rather than tabs.
indent-style = "space"
# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false
# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"

[tool.pytest.ini_options]
pythonpath = [
  "chatbot",
  "tests"
]
